The present invention relates to the communication of digital data and more particularly to the processing of successive frames of digital information to provide a plurality of different data streams from each frame. The invention is particularly applicable to the communication of digital video signals, in which a plurality of different scanning formats are needed for different processing functions.
Television signals are conventionally transmitted in analog form according to various standards adopted by particular countries. For example, the United States has adopted the standards of the National Television System Committee ("NTSC"). Most European countries have adopted either PAL (Phase Alternating Line) or SECAM (Sequential Color And Memory) standards.
Digital transmission of television signals can deliver video and audio services of much higher quality than analog techniques. Digital transmission schemes are particularly advantageous for signals that are broadcast by satellite to cable television affiliates and/or directly to home satellite television receivers. It is expected that digital television transmitter and receiver systems will replace existing analog systems just as digital compact discs have largely replaced analog phonograph records in the audio industry.
A substantial amount of digital data must be transmitted in any digital television system. This is particularly true where high definition television ("HDTV") is provided. In a digital television system, a subscriber receives the digital data stream via a receiver/descrambler that provides video, audio, and data to the subscriber. In order to most efficiently use the available radio frequency spectrum, it is advantageous to compress the digital television signals to minimize the amount of data that must be transmitted.
The video portion of a television signal comprises a sequence of video "frames" that together provide a moving picture. In digital television systems, each line of a video frame is defined by a sequence of digital data referred to as "pixels." A large amount of data is required to define each video frame of a television signal. For example, 7.4 megabits of data is required to provide one video frame at NTSC resolution. This assumes a 640 pixel by 480 line display is used with 8 bits of intensity value for each of the primary colors red, green and blue. High definition television requires substantially more data to provide each video frame. In order to manage this amount of data, particularly for HDTV applications, the data must be compressed.
Video compression techniques enable the efficient transmission of digital video signals over conventional communication channels. Such techniques use compression algorithms that take advantage of the correlation among adjacent pixels in order to derive a more efficient representation of the important information in a video signal.
One of the most effective and frequently used classes of algorithms for video compression is referred to as "transform coders." In such systems, blocks of video are linearly and successively transformed into a new domain with properties significantly different from the image intensity domain. The blocks may be nonoverlapping, as in the case of the discrete cosine transform (DCT), or overlapping as in the case of the lapped orthogonal transform (LOT). Systems using the DCT are described in Chen and Pratt, "Scene Adaptive Coder", IEEE Transactions on Communications, Vol. COM-32, No. 3, Mar. 1984, and in U.S. Pat. No.4,791,598 entitled "Two-Dimensional Discrete Cosine Transform Processor" to Liou, et al., issued Dec. 13, 1988. A system using the LOT is described in Malvar and Staelin, "The LOT: Transform Coding Without Blocking Effects," IEEE Transactions on Acoustics, Speech, and Signal Processing, Vol. 37, No. 3, April 1989.
Video transforms are used to reduce the correlation that exists among samples of image intensity (pixels). Thus, these transforms concentrate the energy into a relatively small number of transform coefficients. Most common transforms have properties that easily permit the quantification of coefficients based on a model of the human visual system. For example, the DCT produces coefficients with amplitudes that are representative of the energy in a particular band of the frequency spectrum. Therefore, it is possible to utilize the fact that the human viewer is more critical of errors in the low frequency regions of an image than in the high frequency or detailed areas. In general, the high frequency coefficients are always quantized more coarsely than the low frequencies.
The output of the DCT is a matrix of coefficients which represent energy in the two-dimensional frequency domain. Most of the energy is concentrated at the upper left corner of the matrix, which is the low frequency region. If the coefficients are scanned in a zigzag manner, starting in the upper left corner, the resultant sequence will contain long strings of zeros, especially toward the end of the sequence. One of the major objectives of the DCT compression algorithm is to create zeros and to bunch them together for efficient coding.
In order to reconstruct a video signal from a stream of transmitted coefficients, it is necessary to perform the inverse of the transform (e.g., DCT) that was used to encode the signals. Typically, the transform coefficients are communicated in n.times.n blocks of coefficients, such as 8.times.8 or 16.times.16 blocks. In order to inverse transform the coefficients, it is necessary to reorder them at the receiver, using the same block format scanning order (e.g., zigzag scanning) used at the transmitter.
It may also be desired to provide the received pixels in a different order, for example to enable processing in a "film mode"which requires line-by-line scanning instead of the block scanning used in DCT processing.
It is known to use two memory buffers in order to store frames of incoming digital video data before processing. Typically, the incoming video data for a current frame is stored in a first memory bank while the data from a prior frame is read out from a second memory bank. At the end of a frame, the buffers are swapped so that the memory bank that just received a frame of data will output that data and the other memory bank will receive the next frame of data. This technique is useful in converting the scanning format of the incoming video data to a format required for subsequent processing.
In cases where two different scanning formats are needed for different processing functions, additional memory banks have been provided. The provision of additional memory banks increases the memory and associated hardware requirements to a point that can render the system design rather complex and expensive.
It would be advantageous to provide a scheme for utilizing just two memory banks to support a plurality of different processing functions that require different scanning formats. Such a scheme should provide a plurality of different output data streams based on the same received information without degrading system throughput.
The present invention provides a dual memory buffer scheme for outputting multiple data streams having the aforementioned advantages.